week3

这一周主要讲了分支,还是比较基础的内容,来看两点。

  • switch

switch适合多分支的情形,但是注意switch后的参数必须为整数以及只有碰到break才会跳出switch。

#include <stdio.h>

int main()
{
	printf("请输入月份:");
	int month;
	scanf("%d", &month);
	switch ( month )
	{
		case 1: printf("January\n"); break;
		case 2: printf("February\n"); break;
		case 3: printf("March\n"); break;
		case 4: printf("April\n"); break;
		case 5: printf("May\n"); break;
		case 6: printf("June\n"); break;
		case 7: printf("July\n"); break;
		case 8: printf("August\n"); break;
		case 9: printf("September\n"); break;
		case 10:printf("October\n"); break;
		case 11:printf("November\n"); break;
		case 12:printf("December\n"); break;
	}

	return 0;
}

  • ?表达式

(表达式) ? x : y ;
首先计算表达式的值,若为ture,则返回x;否则返回y.

week4&week5

这两周的课程都是讲循环,有for循环,while循环,do_while循环,其中for(;条件;)等价于while(条件)。
三中循环使用情形如下:

  • 如果有固定次数,用for
  • 如果必须执行一次,用do_while
  • 其他情况用while

还有一个比较重要的点就是goto语句,因为break只能跳出一层循环,如果要跳出多层循环,则使用goto语句,用法如下所示。但是一般不建议使用goto,因为这样会破坏程序的结构性。

#include <stdio.h>

int main()
{
	int x;
	int one,two,five;
	
	scanf("%d",&x);
	for(one=1;one<x*10;one++){
		for(two=1;two<x*10/2;two++){
			for(five=1;five<x*10/5;five++){
				if(one+two*2+five*5==x*10){
					printf("可以用%d个1角加%d个2角加%d个5角得到%d元\n", 
						one, two, five, x);
					//break;
					goto out;
				}
			}
		}
	}
	out:
		return 0;
}